<script>
	export default {
		onLaunch: function(options) {
			// app隐藏tabbar需要在页面中进行
			// uni.hideTabBar()
			var that = this;
			// #ifdef H5
			that.$store.dispatch('init/getInit');
			// #endif
			// 个性化推荐状态
			// #ifdef APP-PLUS
			plus.screen.lockOrientation("portrait-primary")
			// 判断是否是ios
			uni.getSystemInfo({
				success: function(res) {
					let userAgent = res.ua
					let iphoneRegExp = /iPhone/;
					if (iphoneRegExp.test(userAgent)) {
						if (!uni.getStorageSync('CommonNetConnected')) { // 第一次进入
							that.getNetworkStatus();
						} else {
							that.$store.dispatch('init/getInit');
							uni.setStorageSync('CommonNetConnected', true);
							that.individualization();
						}
					} else {
						that.$store.dispatch('init/getInit');
					}
				}
			});
			// #endif
		},
		onShow: function(options) {
			// #ifdef MP-WEIXIN
			this.getParams(options);
			this.$store.dispatch('init/getInit');
			this.updateManager();
			this.getSetting()
			uni.hideTabBar({
				success: () => {},
				fail: (ex) => {
					console.log(ex)
					// 捕获报错，防止没有tabbar页面调用后控制台报错
				}
			});
			// #endif
		},
		onHide: function() {
			// #ifdef APP-PLUS
			var CALLBACK = function(res) {
				return
			}
			uni.offNetworkStatusChange(CALLBACK)
			// #endif
		},
		methods: {
			// 个性化推荐
			individualization() {
				if (uni.getStorageSync('individualization') === '') { // 未设置
					// 个性化推荐：开启
					uni.setStorageSync('individualization', true);
				}
			},
			getNetworkStatus() {
				var that = this;
				uni.getNetworkType({
					success: function(res) {
						if (res.networkType == "none") {
							uni.onNetworkStatusChange(function(ret) {
								let isiPad = uni.getSystemInfoSync().model.indexOf('iPad')
								if (uni.getSystemInfoSync().platform == 'ios' || isiPad > -1) { // IOS
									that.IOSDispatch();
									that.individualization();
								}
							});
						} else {
							that.IOSDispatch();
							that.individualization();
						}
					}
				});
			},
			IOSDispatch() {
				var that = this
				uni.setStorageSync('CommonNetConnected', true);
				setTimeout(() => {
					that.individualization();
					// plus.runtime.restart();
					that.$store.dispatch('init/getInit');
				}, 1000);
			},
			/**
			 * 处理参数
			 */
			getParams(e) {
				// 获取链接参数
				this.getUrlParams(e.query);
				// 扫描小程序码进入
				this.getQrCodeParams(e.query.scene);
			},
			// 获取链接参数
			getUrlParams(query) {
				if (query.parent_id != undefined && query.parent_id) { // 小程序链接进入：邀请用户id存在
					// 存入邀请用户id
					uni.setStorageSync('parent_id', query.parent_id)
				}
				if (query.product_id != undefined && query.product_id) { // 小程序链接进入：分享商品id存在
					// 存入分享商品id，为了配合商品二维码使用，存入缓存后，商品详情中拿出来
					uni.setStorageSync('product_id', query.product_id)
				}
				if (query.institution_id != undefined && query.institution_id) { // 小程序链接进入：邀请机构id存在
					// 存入邀请机构id
					uni.setStorageSync('institution_id', query.institution_id)
				}
				if (query.institution_agent_id != undefined && query.institution_agent_id) { // 小程序链接进入：邀请机构代理id存在
					// 存入邀请机构代理id
					uni.setStorageSync('institution_agent_id', query.institution_agent_id)
				}
			},
			// 获取扫码二维码的参数
			getQrCodeParams(scene) {
				if (scene != undefined && scene) { // 扫描小程序码进入
					// 获取二维码携带的参数
					var scene = decodeURIComponent(scene)
					if (scene.indexOf('parent_id') > -1 || scene.indexOf('product_id') > -1 || scene.indexOf(
							'institution_id') > -1 || scene.indexOf(
							'institution_agent_id') > -1) { // 邀请用户id
						scene.split('&').forEach((item, index) => {
							// 单个参数
							var paramsArr = item.split('=')
							if (paramsArr[0] == 'parent_id') { // 邀请用户id
								// 存入邀请用户id
								uni.setStorageSync('parent_id', paramsArr[1])
							}
							if (paramsArr[0] == 'product_id') { // 分享产品id
								// 存入分享产品id
								uni.setStorageSync('product_id', paramsArr[1])
							}
							if (paramsArr[0] == 'institution_id') { // 邀请机构id
								// 存入邀请机构id
								uni.setStorageSync('institution_id', paramsArr[1])
							}
							if (paramsArr[0] == 'institution_agent_id') { // 邀请机构代理id
								// 存入邀请机构代理id
								uni.setStorageSync('institution_agent_id', paramsArr[1])
							}
						})
					} else {
						// 二维码token
						uni.setStorageSync('qrcode_token', scene)
					}
				}
			},
			/**
			 * 小程序主动更新
			 */
			updateManager() {
				const updateManager = uni.getUpdateManager();
				if (updateManager != undefined) {
					updateManager.onCheckForUpdate(res => {
						// 请求完新版本信息的回调
					})
					updateManager.onUpdateReady(() => {
						uni.showModal({
							title: '更新提示',
							content: '新版本已经准备好，即将重启应用',
							showCancel: false,
							success(res) {
								if (res.confirm) {
									// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
									updateManager.applyUpdate()
								}
							}
						})
					})
					updateManager.onUpdateFailed(() => {
						// 新的版本下载失败
						uni.showModal({
							title: '更新提示',
							content: '新版本下载失败',
							showCancel: false
						})
					})
				}
			},
			getSetting() {
				var _this = this
				uni.getSetting({
					withSubscriptions: true,
					success(res) {
						if (!res.subscriptionsSetting.mainSwitch) {
							_this.$store.commit('init/setSettings', true)
						}
					},
					fail(err) {
						console.log(err)
					}
				})
			},
		},
	}
</script>

<style lang="scss">
	/*每个页面公共css */
	@import '@/uni_modules/uview-ui/index.scss';
	@import '@/common/css/common.css';
	@import '@/common/css/flex.css';
	@import '@/uni.scss';
</style>